package pe.com.tma.model;

import java.io.Serializable;

import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;

@Entity
@NamedQueries({
  @NamedQuery(name = "Cuentasab.findAll", query = "select o from Cuentasab o")
})
@Table(name = "\"cuentasab\"")
public class Cuentasab implements Serializable {
    @Column(name="NumeroCta")
    private String numeroCta;
    @Column(name="TipoCta")
    private String tipoCta;
    @Column(name="codMoneda")
    private Integer codMoneda;
    @Column(name="descripcion")
    private String descripcion;
    @Column(name="estado")
    private String estado;
    @Id
    @Column(name="idCuentaSAB", nullable = false)
    private Integer idCuentaSAB;
    @OneToMany(mappedBy = "cuentasab")
    private List<Deposito> depositoList;
    @ManyToOne
    @JoinColumn(name = "idBanco")
    private Banco banco;

    public Cuentasab() {
    }

    public Cuentasab(Integer codMoneda, String descripcion, String estado,
                     Banco banco, Integer idCuentaSAB, String numeroCta,
                     String tipoCta) {
        this.codMoneda = codMoneda;
        this.descripcion = descripcion;
        this.estado = estado;
        this.banco = banco;
        this.idCuentaSAB = idCuentaSAB;
        this.numeroCta = numeroCta;
        this.tipoCta = tipoCta;
    }

    public String getNumeroCta() {
        return numeroCta;
    }

    public void setNumeroCta(String numeroCta) {
        this.numeroCta = numeroCta;
    }

    public String getTipoCta() {
        return tipoCta;
    }

    public void setTipoCta(String tipoCta) {
        this.tipoCta = tipoCta;
    }

    public Integer getCodMoneda() {
        return codMoneda;
    }

    public void setCodMoneda(Integer codMoneda) {
        this.codMoneda = codMoneda;
    }

    public String getDescripcion() {
        return descripcion;
    }

    public void setDescripcion(String descripcion) {
        this.descripcion = descripcion;
    }

    public String getEstado() {
        return estado;
    }

    public void setEstado(String estado) {
        this.estado = estado;
    }


    public Integer getIdCuentaSAB() {
        return idCuentaSAB;
    }

    public void setIdCuentaSAB(Integer idCuentaSAB) {
        this.idCuentaSAB = idCuentaSAB;
    }

    public List<Deposito> getDepositoList() {
        return depositoList;
    }

    public void setDepositoList(List<Deposito> depositoList) {
        this.depositoList = depositoList;
    }

    public Deposito addDeposito(Deposito deposito) {
        getDepositoList().add(deposito);
        deposito.setCuentasab(this);
        return deposito;
    }

    public Deposito removeDeposito(Deposito deposito) {
        getDepositoList().remove(deposito);
        deposito.setCuentasab(null);
        return deposito;
    }

    public Banco getBanco() {
        return banco;
    }

    public void setBanco(Banco banco) {
        this.banco = banco;
    }
}
